<!--********************************************************************
* Copyright© 2000 - 2025 SuperMap Software Co.Ltd. All rights reserved.
*********************************************************************-->
<!--********************************************************************
* 该示例需要引入 
* mapbox-gl-draw (https://github.com/mapbox/mapbox-gl-draw)
*********************************************************************-->
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_measureArea"></title>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript" include="bootstrap,jquery,widgets.alert" src="../js/include-web.js"></script>
<script type="text/javascript" include="draw" src="../../dist/mapboxgl/include-mapboxgl.js"></script>
<script type="text/javascript">
    var host = window.isLocal ? window.server : "https://iserver.supermap.io";
    var url = host + "/iserver/services/map-world/rest/maps/World";
    var attribution = "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox </a>" +
       "with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
       " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ";
    var map = new mapboxgl.Map({
        container: 'map',
        style: {
            "version": 8,
            "sources": {
                "raster-tiles": {
                    "attribution": attribution,
                    "type": "raster",
                    "tiles": [host + '/iserver/services/maps/rest/maps/World/zxyTileImage.png?prjCoordSys='+encodeURIComponent('{"epsgCode":3857}')+'&z={z}&x={x}&y={y}'],
                    "tileSize": 256,
                },
            },
            "layers": [{
                "id": "simple-tiles",
                "type": "raster",
                "source": "raster-tiles",
                "minzoom": 0,
                "maxzoom": 22
            }],
        },
        center: [0, 0],
        maxZoom: 18,
        zoom: 3
    });
    map.addControl(new mapboxgl.supermap.LogoControl({ link: "https://iclient.supermap.io" }), 'bottom-right');
    map.addControl(new mapboxgl.NavigationControl(), 'top-left');

    var draw = new MapboxDraw({
        displayControlsDefault: false,
        controls: {
            polygon: true,
            trash: true
        }
    });
    map.addControl(draw, "top-left");

    function measureArea(e) {
        if (!e.features) {
            widgets.alert.showAlert(resources.msg_noDataRedraw, false);
        }
        var param = new mapboxgl.supermap.MeasureParameters(e.features[0]);
        new mapboxgl.supermap.MeasureService(url).measureArea(param).then(function (serviceResult) {
            var area = serviceResult.result.area;
            var rounded_area = Math.round(area * 100) / 100;
            widgets.alert.showAlert(rounded_area + resources.msg_sqm, true);
        });
    }

    function removeMsg() {
        $('#msg_container').remove();
    }

    map.on('draw.create', measureArea);
    map.on('draw.delete', removeMsg);
</script>
</body>
</html>